﻿/*******************************************************************************
* file  : mem alloc cfg
* creat : apleilx
* data  : 2021/09/26
*******************************************************************************/
#include "multi_malloc.h"
#include "sys_init.h"

/*******************************************************************************
* @brief  创建内存池 SRAM.
*******************************************************************************/
uu64 sram_map[1024 / 8] OBJ_SECTION(".sram");					// 内存池
uu16 sram_tab[1024 / 16] OBJ_SECTION(".sram");					// 内存分配表
multi_malloc_info_type sram_info={0};							// 工作信息
uu16 sram_lock(void){return 0;}									// 申请互斥锁
void sram_unlock(void){}										// 释放互斥锁
multi_malloc_api_ref(mem_sram);									// 接口引用声明
const multi_malloc_type mem_sram = 								// 信息描述
{
	sram_map,
	sram_tab,
	sizeof(sram_map),
	16,
	sizeof(sram_map)/16,
	sram_lock,
	sram_unlock,
	&sram_info,
	multi_malloc_api_name(mem_sram)
};
multi_malloc_api_make(mem_sram);			// 创建API接口

/*******************************************************************************
* @brief  创建内存池 CCM.
*******************************************************************************/
#define CCM_SIZE							(56 * 1024)
#define CCM_BLOCK_SIZE						(64)

uu64 ccm_map[CCM_SIZE / 8] OBJ_SECTION(".ccm");					// 内存池
uu16 ccm_tab[CCM_SIZE / CCM_BLOCK_SIZE] OBJ_SECTION(".ccm");	// 内存分配表
multi_malloc_info_type ccm_info={0};							// 工作信息
uu16 ccm_lock(void){return 0;}									// 申请互斥锁
void ccm_unlock(void){}											// 释放互斥锁
multi_malloc_api_ref(mem_ccm);									// 接口引用声明
const multi_malloc_type mem_ccm = 								// 信息描述
{
	ccm_map,
	ccm_tab,
	CCM_SIZE,
	CCM_BLOCK_SIZE,
	CCM_SIZE/CCM_BLOCK_SIZE,
	ccm_lock,
	ccm_unlock,
	&ccm_info,
	multi_malloc_api_name(mem_ccm)
};
multi_malloc_api_make(mem_ccm);				// 创建API接口
